package com.hoshiicloud.purchase.param;

import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 新增参数
* </p>
*
* @author campchen
* @since 2019-05-15
*/

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="新增", description="新增")
public class PoAddParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(name = "id", value = "ID 为聚合服务提供", dataType = "java.lang.Long", example = "3171776001692663893")
    private Long id;

    @NotNull(message = "公司ID不能为空")
    @ApiModelProperty(name = "companyId", value = "公司ID", dataType = "java.lang.Long", example = "3171776001692663893")
    private Long companyId;

    @ApiModelProperty(name = "platformId", value = "平台ID", dataType = "java.lang.Long", example = "3189609977215975479")
    private Long platformId;

    @ApiModelProperty(name = "storeId", value = "店铺ID", dataType = "java.lang.Long", example = "")
    private Long storeId;

    @ApiModelProperty(name = "source", value = "订单类型,1-租户采购 2-租户供应商 3-平台采购 4-平台供应商 5-店铺采购 6-店铺供应商",required = true, dataType = "java.lang.Integer", example = "1")
    @NotNull(message = "订单类型不能为空")
    private Integer source;

    @ApiModelProperty(name = "type", value = "1-预采单  9-销售单", dataType = "java.lang.Integer", example = "1")
    private Integer type;

/*    @ApiModelProperty(name = "poNo", value = "采购单编号", dataType = "java.lang.String", example = "")
    private String poNo;

    @ApiModelProperty(name = "poDate", value = "采购单日期", dataType = "java.time.LocalDateTime", example = "")
    private LocalDateTime poDate;
    */
    @NotNull(message = "供应商id不能为空")
    @ApiModelProperty(name = "vendorId", value = "供应商id", dataType = "java.lang.Long", example = "")
    private Long vendorId;

    @ApiModelProperty(name = "vendorWhid", value = "供应商仓库", dataType = "java.lang.Long", example = "")
    private Long vendorWhid;

    @ApiModelProperty(name = "platformWhid", value = "平台仓库", dataType = "java.lang.Long", example = "")
    private Long platformWhid;

    @ApiModelProperty(name = "storeWhid", value = "店铺仓库", dataType = "java.lang.Long", example = "")
    private Long storeWhid;

    @NotNull(message = "订单金额不能为空")
    @ApiModelProperty(name = "orderAmount", value = "订单金额", dataType = "java.math.BigDecimal", example = "")
    private BigDecimal orderAmount;

    @NotNull(message = "商品件数不能为空")
    @ApiModelProperty(name = "orderCount", value = "商品件数", dataType = "java.lang.Long", example = "")
    private Long orderCount;

    @ApiModelProperty(name = "memberId", value = "收货人id", dataType = "java.lang.Long", example = "")
    private Long memberId;

    @ApiModelProperty(name = "address", value = "收货地址", dataType = "java.lang.String", example = "")
    private String address;

    @ApiModelProperty(name = "consignee", value = "收货人的姓名", dataType = "java.lang.String", example = "")
    private String consignee;

    @ApiModelProperty(name = "country", value = "收货人的国家region", dataType = "java.lang.Integer", example = "")
    private Long country;

    @ApiModelProperty(name = "province", value = "收货人的省份", dataType = "java.lang.Integer", example = "")
    private Long province;

    @ApiModelProperty(name = "city", value = "收货人的城市", dataType = "java.lang.Integer", example = "")
    private Long city;

    @ApiModelProperty(name = "district", value = "收货人的地区", dataType = "java.lang.Integer", example = "")
    private Long district;

    @ApiModelProperty(name = "zipcode", value = "收货人的邮编", dataType = "java.lang.String", example = "")
    private String zipcode;

    @ApiModelProperty(name = "telphone", value = "收货人的电话", dataType = "java.lang.String", example = "")
    private String telphone;

    @ApiModelProperty(name = "mobile", value = "收货人的手机", dataType = "java.lang.String", example = "")
    private String mobile;

    @ApiModelProperty(name = "email", value = "收货人的邮箱", dataType = "java.lang.String", example = "")
    private String email;

    @ApiModelProperty(name = "deliveryDate", value = "交货日期", dataType = "java.time.LocalDateTime", example = "")
    private LocalDateTime deliveryDate;

    @ApiModelProperty(name = "status", value = "订单状态  0-初始下单 2-已确认 3-执行中 4-已完成 5-已作废", dataType = "java.lang.Integer", example = "")
    private Integer status;

    @ApiModelProperty(name = "settleStatus", value = "结算状态  1-已结算  0-未结算", dataType = "java.lang.Integer", example = "")
    private Integer settleStatus;

    @ApiModelProperty(name = "settleAmount", value = "结算金额", dataType = "java.math.BigDecimal", example = "")
    private BigDecimal settleAmount;



}
